Typically, most personal computers are sold to consumers with certain software programs preloaded on internal non-volatile memory, such as a hard disk or the like. For example, operating system software, which is necessary for the operation of the computer, is typically loaded onto the computer's hard disk at the time of manufacture. Depending upon the intended use of the computer, other types of programs may also be loaded at the manufacturing site, for example networking software or a certain applications programs.
The installation of system software and other programs onto individual computers can be carried out in a number of different ways. For example, the software can be copied from diskettes that are inserted into the computers, or downloaded over a network to which the computers are connected. In a manufacturing environment, the software can be transferred to the computer by means of a cable connected between the computer of interest and the source of software to be installed. For example, the computer of interest can be connected to an external disk drive which contains a bundle of software to be installed. To carry out the installation process, the computer is turned on and boots itself from the external drive. As part of the booting process, the computer loads an installation program, which causes the bundle of software to be copied onto the internal disk drive of the computer.
While these various approaches to installing system software are straightforward, they are disadvantageous by virtue of the fact that they are relatively slow. In particular, each computer is required to boot and launch its own installation application. In addition, the speed of transfer is dictated by the speed of the computer itself. It is not uncommon that the total installation process might take up to forty-five minutes per computer being manufactured. It will be appreciated that, in an environment in which large numbers of computers are being manufactured, the time required to install the software can present a significant bottleneck in the overall manufacturing process.
In an effort to increase the speed of installation, a control computer can be employed to take over some of the tasks that are carried out during the process. In this arrangement, the computer of interest, i.e. the one under manufacture, is connected to a host controller, typically a higher speed computer, via a serial cable or external bus. The controller causes the appropriate bundle of software to be downloaded onto the computer's internal disk drive, for example from a disk drive within the controller or from one that is external to both the controller and the computer. In essence, the controller functions as if the disk drive of the computer of interest is a normal external drive. In this operation, the computer of interest is passive, and the transfer takes place at the controller's speed, rather than that of the computer. In addition, the installation process is streamlined, since the computer itself is not required to go through a complete boot process.
While the use of an external controller to manage the software installation process has decreased the time required to carry out the process, inherent delays are still present. For example, the copying of the software from the source drive to the computer's disk drive takes place on a file-by-file basis. When this approach is employed, the copying of each file is handled through a file management portion of the controller's operating system. Typically, the file manager resides at a high level of the system software, and must pass each copy request through several software layers to the low-level device managers which actually control the physical devices, such as the disk drives. As the request is passed to each subsequent layer, additional complexity is added, which consumes additional time. For software programs which contain a large number of small files, such as a typical operating system, it will be appreciated that the need to process each file copy request in this manner presents a considerable delay factor.
Accordingly, it is an objective of the present invention to provide a software installation process which can avoid the need for file-by-file transfers, and thereby increase the speed of the overall downloading process.